package com.dd.cloud.user.service.chknowl;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.cloud.user.entity.chknowl.ChknowlChDrugs;
import com.dd.cloud.user.req.chknowl.ChDrugsCreateReq;
import com.dd.cloud.user.req.chknowl.ChDrugsQueryReq;
import com.dd.cloud.user.req.chknowl.ChDrugsUpdateReq;
import com.dd.cloud.user.req.chknowl.ChkonwlDrugsReq;
import com.dd.cloud.user.res.chknowl.ChUserSearchListRes;
import com.dd.cloud.user.res.chknowl.ChknowlChDrugsDetailRes;
import com.dd.cloud.user.res.chknowl.ChknowlChDrugsPageRes;
import com.dd.cloud.user.res.chknowl.ChkonwlDrugsRes;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 古籍中药材 服务类
 * </p>
 *
 * @author czg
 * @since 2022-07-04
 */
public interface IChknowlChDrgusService extends IService<ChknowlChDrugs> {
    /**
     * 查询中药材信息列表
     *
     * @param req 条件参数
     * @return
     */
    IPage<ChknowlChDrugsPageRes> queryChDrugsPage(ChDrugsQueryReq req);

    /**
     * 查询中药材详细信息
     *
     * @param id id
     * @return
     */
    ChknowlChDrugsDetailRes queryChDrugsDetail(Integer id);

    /**
     * 创建中药材信息
     *
     * @param req 参数
     */
    void createChDrugs(ChDrugsCreateReq req);

    /**
     * 修改中药材信息
     *
     * @param req 参数
     */
    void updateChDrugs(ChDrugsUpdateReq req);

    /**
     * 修改中药材信息状态
     *
     * @param id     id
     * @param status 状态
     */
    void updateChDrugsStatus(Integer id, Integer status);

    /**
     * 批量导入中药材信息
     *
     * @param file excel文件
     */
    void importMiddleDrugs(MultipartFile file);

    /**
     * 关键字查询中药材信息
     * @param keyword
     * @return
     */
    List<ChUserSearchListRes> getChDrugsListByKeyword(String keyword);

    /**
     * 根据条件筛选
     * @return
     * @param chkonwlDrugsReq
     */
    List<ChkonwlDrugsRes> queryDrugsList(ChkonwlDrugsReq chkonwlDrugsReq);

    /**
     * 导入中药材
     * @param file
     */
    void importDrugBatch(MultipartFile file);

    /**
     * 导入照片
     */
    void addDrugUrl(MultipartFile[] files);

    /**
     * 手动归经
     */
    void importDrugOther(MultipartFile file);

    /**
     * 导入分类名
     */
    void importDrugCategory(MultipartFile file);
}
